﻿using System.Reflection;

namespace Inovout.Descriptors
{
    public class ConstructorDescriptor:BaseMethodDescriptor
    {
        private ConstructorInfo constructorInfo;
        public ConstructorDescriptor(ConstructorInfo constructorInfo)
            : base(constructorInfo)
        {
            this.constructorInfo = constructorInfo;
            ParameterInfo[] parameterInfos = constructorInfo.GetParameters();
            parameterDescriptors = new ParameterDescriptor[parameterInfos.Length];
            for (int i = 0; i < parameterDescriptors.Length; i++)
            {
                parameterDescriptors[i] = new ParameterDescriptor(parameterInfos[i]);
            }
        }

        private readonly ParameterDescriptor[] parameterDescriptors;
        public bool IsDefault
        {
            get { return parameterDescriptors.Length == 0; }
        }

        public ParameterDescriptor[] Parameters 
        {
            get { return parameterDescriptors; }
        }
    }
}
